package ${domain}.module.wsys.mgr;

import ${domain}.frame.auth.Token;
import ${domain}.module.wsys.req.RoleCreateRequest;
import ${domain}.module.wsys.req.RoleDeleteRequest;
import ${domain}.module.wsys.req.RoleFindRequest;
import ${domain}.module.wsys.req.RoleLoadRequest;
import ${domain}.module.wsys.req.RoleUpdateRequest;
import ${domain}.module.wsys.rsp.RoleCreateResponse;
import ${domain}.module.wsys.rsp.RoleDeleteResponse;
import ${domain}.module.wsys.rsp.RoleFindResponse;
import ${domain}.module.wsys.rsp.RoleLoadResponse;
import ${domain}.module.wsys.rsp.RoleUpdateResponse;

/**
 * 角色
 *
 * @author wangbing
 * @version 0.0.1
 * @since 2017-01-01
 */
public interface RoleManager {

    /**
     * 插入
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    RoleCreateResponse create(RoleCreateRequest request, Token token);

    /**
     * 逻辑删除
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    RoleDeleteResponse delete(RoleDeleteRequest request, Token token);

    /**
     * 更新
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    RoleUpdateResponse update(RoleUpdateRequest request, Token token);

    /**
     * 查询
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    RoleFindResponse find(RoleFindRequest request, Token token);

    /**
     * 加载
     *
     * @param request 请求对象
     * @param token   令牌
     * @return
     */
    RoleLoadResponse load(RoleLoadRequest request, Token token);
}
